package co.edu.javeriana.konigsberg.xavier.gui.bean;

import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import org.primefaces.event.SelectEvent;

import co.edu.javeriana.konigsberg.xavier.dto.ProgramaDTO;
import co.edu.javeriana.konigsberg.xavier.dto.ProgramaLogDTO;
import co.edu.javeriana.konigsberg.xavier.dto.UsuarioDTO;
import co.edu.javeriana.konigsberg.xavier.servicio.ProgramaServicioLocal;

@ManagedBean(name="homeBean")
@ViewScoped
public class HomeBean extends ManagerBean{
	private static final long serialVersionUID = 1L;
	private List<ProgramaDTO> programas;
	private List<ProgramaDTO> programasGeneral;
	private List<ProgramaLogDTO> programaLogs;
	private ProgramaDTO programa;
	//private ProgramaModel programaModel;
	
	@EJB
	private ProgramaServicioLocal programaServicio;
	
	public void onRowSelect(SelectEvent event) {  
		programa = (ProgramaDTO) event.getObject();
	}  
	public List<ProgramaDTO> getProgramas() {
		UsuarioDTO usuarioDTO = obtenerUsuario();
		programas = programaServicio.consultarProgramas(usuarioDTO);
		return programas;
	}
	public void setProgramas(List<ProgramaDTO> programas) {
		this.programas = programas;
	}
	public ProgramaDTO getPrograma() {
		return programa;
	}
	public void setPrograma(ProgramaDTO programa) {
		this.programa = programa;
	}
	
	public String seleccionarPrograma(ProgramaDTO programaDTO){
		
		cargarEnSession("programa", programaDTO);
		cargarEnSession("departamentosSeleccionados", programaDTO.getDepartamentosFacultadDTO());
		return "programa";
	}
	
	public void seleccionarProgramaModal(ProgramaDTO programaDTO){
		
		cargarEnSession("programa", programaDTO);
		cargarEnSession("departamentosSeleccionados", programaDTO.getDepartamentosFacultadDTO());
	}
	
	public List<ProgramaDTO> getProgramasGeneral() {
		UsuarioDTO usuarioDTO = obtenerUsuario();
		programasGeneral = programaServicio.consultarProgramasGeneral(usuarioDTO);
		return programasGeneral;
	}
	public void setProgramasGeneral(List<ProgramaDTO> programasGeneral) {
		this.programasGeneral = programasGeneral;
	}
	public List<ProgramaLogDTO> getProgramaLogs() {
		ProgramaDTO programaDTO = (ProgramaDTO)obtenerEnSession("programa");
		programaLogs = programaServicio.consultarProgramaLogs(programaDTO);
		return programaLogs;
	}
	public void setProgramaLogs(List<ProgramaLogDTO> programaLogs) {
		this.programaLogs = programaLogs;
	}
	
//	public ProgramaModel getProgramaModel() {
//		return programaModel;
//	}
//	public void setProgramaModel(ProgramaModel programaModel) {
//		this.programaModel = programaModel;
//	}
}
